package com.tonghe.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.tonghe.domain.ResponseResult;
import com.tonghe.domain.dto.TagDto;
import com.tonghe.domain.entity.Tag;
import com.tonghe.vo.PageVo;


/**
 * 标签(Tag)表服务接口
 *
 * @author tonghe
 * @since 2022-07-24 23:29:05
 */
public interface TagService extends IService<Tag> {

    /**
     * 后台添加用户
     *
     * @param pageNum 页号
     * @param pageSize 每页大小
     * @param tagDto 标签模糊查询条件
     * @return 结果
     */
    ResponseResult<PageVo> pageTagList(Integer pageNum, Integer pageSize, TagDto tagDto);

    /** 获取所有标签 */
    ResponseResult getAllTag();

    /**
     * 查询用户
     *
     * @param id 用户id号
     * @return 结果
     */
    ResponseResult selectOne(long id);

    /**
     * 新增标签
     *
     * @param tagDto 标签DTO
     * @return 结果
     */
    ResponseResult insertTag(TagDto tagDto);

    /**
     * 更新标签
     *
     * @param tag 标签实体
     * @return 结果
     */
    ResponseResult updateTag(Tag tag);

    /**
     * 删除标签
     *
     * @param id 标签id号
     * @return 结果
     */
    ResponseResult removeTagById(long id);

    /**
     * 检查标签名是否唯一
     *
     * @param name 标签名
     * @param id id号
     * @return 结果
     */
    Boolean checkTagNameUnique(String name, Long id);

    /**
     * 检查标签是否关联文章
     *
     * @param tagId 标签id号
     * @return 结果
     */
    Boolean checkTagExistArticle(Long tagId);
}
